Skip to content

test(dogfood): designer-shaped (layout-less) dashboard saves + publishes#2260

Merged
os-zhuang merged 1 commit into
mainfrom
test/dashboard-designer-smoke
Jun 24, 2026
Merged

test(dogfood): designer-shaped (layout-less) dashboard saves + publishes#2260
os-zhuang merged 1 commit into
mainfrom
test/dashboard-designer-smoke

Conversation

@os-zhuang

Copy link
Copy Markdown
Contributor

Why

The P1 found dogfooding the Studio dashboard designer (fixed in #2247) hid in a coverage gap: the Dogfood Regression Gate tested only code-authored dashboards, which always specify a layout — so nothing exercised the layout-less shape the designer actually produces. The draft save returned 422 and Publish stayed disabled, yet every static gate passed.

What

A golden regression that boots the real showcase stack and drives the actual create → save → publish metadata path with a designer-shaped (layout-less) dashboard:

  • PUT /meta/dashboard/:name?mode=draft200 (was 422: widgets: expected object, received undefined)
  • POST /meta/dashboard/:name/publish200
  • GET /meta/dashboard/:name → widgets persisted, layout-less intact

This is the test that would have caught the bug before merge. It closes the "renders at design time ≠ persists" gap for the dashboard designer.

Verification

vitest run3 passed in ~3.6s.

Pairs with #2247 (made DashboardWidget.layout optional).

🤖 Generated with Claude Code

Golden regression for the P1 found dogfooding the Studio dashboard designer:
the designer's addWidget creates widgets WITHOUT a `layout`, but the spec
required it, so every designer-authored dashboard returned 422 on draft save
and Publish stayed disabled — yet it passed every static gate because
code-authored example dashboards always specify a layout.

Boots the real showcase stack and drives the actual create -> save -> publish
metadata path with a layout-less, designer-shaped dashboard:
  - PUT /meta/dashboard/:name?mode=draft  -> 200 (was 422)
  - POST /meta/dashboard/:name/publish    -> 200
  - GET  /meta/dashboard/:name            -> widgets persisted, layout-less

Closes the "renders at design time != persists" coverage gap that hid the bug.
Pairs with the spec fix (#2247) that made DashboardWidget.layout optional.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@vercel

vercel Bot commented Jun 24, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
spec Building Building Preview, Comment Jun 24, 2026 4:07am

Request Review

@github-actions

Copy link
Copy Markdown
Contributor

📓 Docs Drift Check

No hand-written docs reference the 1 changed package(s). ✅

@os-zhuang
os-zhuang merged commit f505397 into main Jun 24, 2026
15 of 16 checks passed
@os-zhuang
os-zhuang deleted the test/dashboard-designer-smoke branch June 24, 2026 04:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant